//package org.jeecg.modules.meter.web;
//
//import com.baomidou.mybatisplus.core.metadata.IPage;
//import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
//import lombok.extern.slf4j.Slf4j;
//import org.apache.commons.lang3.StringUtils;
//import org.jeecg.common.api.vo.Result;
//import org.jeecg.entity.meter.Meter;
//import org.jeecg.modules.meter.RoomVO;
//import org.jeecg.modules.meter.entity.*;
//import org.jeecg.modules.meter.service.IMeterOrderService;
//import org.jeecg.modules.meter.service.IMeterService;
//import org.jeecg.modules.meter.service.IMeterSnapshotService;
//import org.jeecg.modules.meter.service.IMeterUserService;
//import org.jeecg.modules.meter.vo.MeterOffice;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.ui.Model;
//import org.springframework.web.bind.annotation.RequestMapping;
//import org.springframework.web.bind.annotation.RequestParam;
//import org.springframework.web.bind.annotation.ResponseBody;
//import org.springframework.web.bind.annotation.RestController;
//
//import javax.servlet.http.HttpServletRequest;
//import javax.servlet.http.HttpServletResponse;
//import java.math.BigDecimal;
//import java.util.ArrayList;
//import java.util.Date;
//import java.util.List;
//
///**
// * 水电表对外提供接口
// * @author liurui
// * @date  2018年11月12日
// * @version v1.0
// */
//@Slf4j
//@RestController
//@RequestMapping(value = "/b/meter/foreign/base")
//public class ForeignMeterController {
//	@Autowired
//	private IMeterService meterService;
//	@Autowired
//	private IMeterUserService meterUserService;
//	@Autowired
//	private IMeterOrderService meterOrderService ;
//	@Autowired
//	private IMeterSnapshotService meterSnapshotService;
//
//	/**
//	 * 校验meterCode是否存在
//	 * @param meterCode - 电表编号(可以是:实际表号、CIM中生成的表号、pay后台的表号)
//	 * @return
//	 */
//	@RequestMapping(value = "checkMeterCode")
//	public Result checkMeterCode(HttpServletRequest request, HttpServletResponse response,
//                                             String meterCode, String projectId, String meterType){
//		log.info("传入参数:meterCode:{},projectId:{},meterType:{}",meterCode,projectId,meterType);
//		if(StringUtils.isEmpty(meterType)){
//			meterType = "电";
//		}
//		if(StringUtils.isEmpty(meterCode)){
//			return Result.error(1,"仪表编号不可为空");
//		}
//		RoomVO roomVO = meterService.getProjectById(projectId);
//		if(roomVO == null){
//			return Result.error(2,"当前小区未查找到");
//		}
//		List<Meter> list = meterService.checkMeterCode(meterCode,projectId,meterType);
//		if(list.size() > 0 ){
//			//TODO 当天绑定的电表在其认证的房产可以关联出来 不可手动绑定
//			return Result.ok(list.get(0),"系统中存在该表号,可添加");
//		}
//		return Result.error(1,"表号不存在,请确认/切换默认小区");
//	}
//
//	/**
//	 * 获取房间对应的电表列表 -- 扫码支付用
//	 * @param roomId - 房间id
//	 * @param meterType
//	 * @return
//	 */
//	@RequestMapping(value = "meterListNoLogin")
//	@ResponseBody
//	public Result meterListNoLogin(String roomId,String meterType){
//		if(StringUtils.isEmpty(meterType)) meterType = "电";
//		List<Meter> meterList =  meterService.findByRoomId(roomId,meterType);
//		if(meterList.size() <= 0 ){
//			return Result.error(1,"查无信息");
//		}
//		for (Meter meter : meterList){
//			String unit = meter.getUnit();
//			BigDecimal price = new BigDecimal(meter.getPrice());
//			String[] chargeArr = meter.getMeterCharges().getCharges().split(",");
//			List<MeterCharges> list = new ArrayList<>();
//			for (String temp : chargeArr){
//			    BigDecimal tempBig = new BigDecimal(temp);
//                tempBig = tempBig.divide(price,2,BigDecimal.ROUND_HALF_UP);
//				MeterCharges meterCharges = new MeterCharges();
//				meterCharges.setCharges(temp);
//				meterCharges.setChargesExt(temp + " (单价:" + price + "元/"+unit+",合计"+unit+"数约:" + tempBig + unit +")");
//				list.add(meterCharges);
//			}
//			meter.setCharges(list);
//		}
//		return Result.ok(meterList,"获取成功");
//	}
//
//
//	/**
//	 * 获取用户对应的电表列表
//	 * @param userId - 畅e用户id
//	 * @return
//	 */
//	@RequestMapping(value = "meterList")
//	@ResponseBody
//	public Result meterList(String userId,String meterType){
//		if(StringUtils.isEmpty(meterType)){
//			meterType = "电";
//		}
//		//获取绑定的电表
//		List<Meter>  bindList =  meterUserService.findBindMeterByUserId(userId,meterType);
//		List<String> meterIds = new ArrayList<String>();
//		for(Meter temp:bindList){
//			meterIds.add(temp.getId());
//		}
//		List<Meter> list = meterService.findByCheckedRoomList(userId,meterIds,meterType);
//		if(list.size() > 0){
//			bindList.addAll(list);
//		}
//		for (Meter temp:list){
//			String name = temp.getName();
//			if (StringUtils.isNotEmpty(name) && !temp.getMeterType().equals(name)
//					&& !temp.getPayMeterNo().equals(name) && !temp.getActualNo().equals(name)){
//				String address = "";
//				if (StringUtils.isNotEmpty(temp.getRoomAddress())){
//					address = temp.getRoomAddress();
//				}
//				/*if (room !=null){
//					room.setAddress(address + name);
//				}*/
//			}
//		}
//		if(bindList.size() <= 0 ){
//			return Result.error(1,"查无信息");
//		}
//		for (Meter meter : bindList){
//            BigDecimal price = new BigDecimal(meter.getPrice());
//			String[] chargeArr = meter.getMeterCharges().getCharges().split(",");
//			List<MeterCharges> temList = new ArrayList<>();
//			for (String temp : chargeArr){
//				String unit = meter.getUnit();
//                BigDecimal tempBig = new BigDecimal(temp);
//                tempBig = tempBig.divide(price,2,BigDecimal.ROUND_HALF_UP);
//				MeterCharges meterCharges = new MeterCharges();
//				meterCharges.setCharges(temp);
//				meterCharges.setChargesExt(temp + " (单价:" + price + "元/"+unit+",合计"+unit+"数约:" + tempBig + unit +")");
//				temList.add(meterCharges);
//			}
//			meter.setCharges(temList);
//		}
//		return Result.ok(bindList,"获取成功");
//	}
//
//	/**
//	 * 手动添加电表绑定
//	 * @param userId - 畅e的用户id
//	 * @return
//	 */
//	@RequestMapping(value = "addUserMeter")
//	public Result addUserMeter(String userId,String meterId,String projectId){
//		List<MeterUser>  list = meterUserService.findByUserIdAndMeterId(meterId, userId);
//		if(list.size() > 0 ){
//			return Result.error(1,"当前仪表已绑定,不可重复绑定");
//		}
//		Meter meter = meterService.getById(meterId);
//		if(meter ==null){
//			return Result.error(1,"电表id系统中未查找到");
//		}
//		MeterUser meterUser = new MeterUser();
//		meterUser.setMeterId(meter.getId());
//		meterUser.setProjectId(projectId);
//		meterUser.setUserId(userId);
//		try{
//			meterUserService.save(meterUser);
//		} catch(Exception e){
//			log.error(e.getMessage(), e);
//			return Result.error(1,"系统繁忙,保存失败");
//		}
//		return Result.ok(0,"添加成功");
//	}
//
//
//
//	/**
//	 *
//	 * 获取十二街坊小区的office
//	 * @param request
//	 * @param response
//	 * @return
//	 */
//	@RequestMapping(value = "meterOfficeList")
//	public Result meterOfficeList(HttpServletRequest request , HttpServletResponse response){
//		RoomVO wyProjectEntity = meterService.getProjectById("662a2f294f564be7aba4ce86ef6f5a5e");
//		List<MeterOffice> list = new ArrayList<>();
//		if(null != wyProjectEntity){
//			MeterOffice meterOffice = new MeterOffice();
//			meterOffice.setId(wyProjectEntity.getId());
//			meterOffice.setName(wyProjectEntity.getName());
//			meterOffice.setAddress(wyProjectEntity.getProjectAddress());
//			meterOffice.setOfficeId(wyProjectEntity.getDepartId());
//			list.add(meterOffice);
//		}
//		return Result.ok(list,"查询成功");
//	}
//
//	/**
//	 *
//	 * 根据小区或者楼栋获取电表信息
//	 * @param meter
//	 * @param request
//	 * @param response
//	 * @param model
//	 * @return
//	 */
//	@RequestMapping(value = "meterListByProjectId")
//	@ResponseBody
//	public Result meterListByProjectId(Meter meter,
//                                       @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
//                                       @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
//                                       HttpServletRequest request, HttpServletResponse response, Model model) {
//        Page<Meter> page = new Page<Meter>(pageNo, pageSize);
//		IPage<Meter> pageList = meterService.selectSqlList(page, meter,null);
//		return Result.ok(pageList,"查询成功");
//	}
//
//	/**
//	 * 每月的日用量明细接口
//	 */
//	@RequestMapping(value = "getDailyUseByMonth")
//	public Result getDailyUseByMonth(MeterSnapshot meterSnapshot, HttpServletRequest request, HttpServletResponse response, Model model) {
//		if(meterSnapshot ==null||meterSnapshot.getMeterId()==null) {
//			return Result.error(1,"参数错误");
//		}
//		if( meterSnapshot.getAccualDay()==null) {
//		    meterSnapshot.setAccualDay(new Date());
//		}
// 		List<MeterSnapshot> list = meterService.getDailyUseByMonth(meterSnapshot);
//		return Result.ok(list,"操作成功");
//	}
//
//	/**
//	 * 每年的月用量明细接口
//	 * @return
//	 */
//	@RequestMapping(value = "getMonthlyUseByYear")
//	public Result getMonthlyUseByYear(MeterSnapshot meterSnapshot, HttpServletRequest request, HttpServletResponse response, Model model) {
//		if(meterSnapshot ==null||meterSnapshot.getMeterId()==null) {
//			return Result.error(1,"参数错误");
//		}
//		if( meterSnapshot.getAccualDay()==null) {
//		    meterSnapshot.setAccualDay(new Date());
//		}
//		List<MeterSnapshot> list = meterSnapshotService.getMonthlyUseByYear(meterSnapshot);
//		return Result.ok(list,"操作成功");
//	}
//
//	@RequestMapping(value = "getUseList")
//	public Result getUseList(MeterSnapshot meterSnapshot, HttpServletRequest request, HttpServletResponse response, Model model) {
//		if(meterSnapshot ==null||meterSnapshot.getMeterId()==null) {
//			return Result.error(1,"参数错误");
//		}
//		List<MeterSnapshot> list = meterSnapshotService.findList(meterSnapshot);
//		return Result.ok(list,"操作成功");
//	}
//	/**
//	 * （未完成）修改每日电表用量接口
//	 * */
//	@RequestMapping(value = "changeDayUse")
//	public Result changeDayUse(MeterSnapshot meterSnapshot, HttpServletRequest request, HttpServletResponse response, Model model) {
//		String meterId = null;
//		Date accualDay =null;
//		if(meterSnapshot.getAccualDay()!=null) {
//			accualDay = meterSnapshot.getAccualDay();
//		}
//		if(meterSnapshot.getMeterId()!=null) {
//			meterId=meterSnapshot.getMeterId();
//		}
//		meterSnapshotService.countDayUse( meterId,accualDay);
//		return Result.ok(0,"操作成功");
//	}
//
//
//}